GAE オートスケール
スケーリングタイプ
自動 👈 これが新しいし柔軟
基本
手動
自動スケーリング
target_cpu_utilization (default: 0.6)
CPU 使用率に基づくスケーリング、これを超えたらスケールする
コンソールで Megacycles/sec を見れる
インスタンスのクラスによると F2 は 1.2 GHz から計算できる? かと思ったけどどういう計算だろ? https://gyazo.com/a774040c83c1ed322a567a97da893214
https://gyazo.com/d0da7191ce5a1d76d9cb086920458333
target_throughput_utilization
同時リクエストが max_concurrent_requests * target_throughput_utilization に達したら新しいインスタンスを立てる
max_concurrent_requests
これに達したら増える、と書いてあるけど嘘だと思う
これを超えると新しいインスタンスに振られる
min_pending_latency と max_pending_latency
2021/6/1 時点の個人的な理解
あまりドキュメントを読んでも明確でないし、これ max~ だけでいいんじゃないか? とも思えるけど
min_pending_latency 経過するまでの間は、latency 起因のスケール(インスタンスの起動)はしない
この間にリクエストキューが空くかもしれない
? この間に CPU Utilization が下がるかもしれない?
min ~ max の間にインスタンスが見つけられなければ作る
max_pending_latency を超えると新しいインスタンスが立つ
latency 起因によるスケール
? いずれも保留キューに入ってからの話?
リクエストがさばけている(max_concurrent_request * target_throughput に満たない同時リクエスト数の間?)は保留キューに入らない? "保留キュー" は常に通るものなのか、閾値を超えた際の一時的な待機場所なのか明確でないのでよくわからない
ERROR: (gcloud.app.deploy) INVALID_ARGUMENT: version.automatic_scaling.max_pending_latency (30.0) must be in the range 0.01, 15.0. ちなみに max_pending_latency は 15秒を超えて設定できない